

/**
 *
 * @author Alejo
 */
public class Cliente {
    private int ti, ts, te, tt, ventanilla;
    
    private boolean entrada;

    @Override
    public String toString() {
        return "Cliente en ventanilla  "+ventanilla + " , Minuto de Entrada  " + ti + " , Minutos de Transaccion  " + tt + ", Minuto de Salida " + ts + ", Minutos de espera  " + te ;
    }

    /**
     * Constructor de un cliente de un banco, se asigna su tiempo de entrada, tiempo de transaccion y el evento del ciente ya sea entrar a cola o salir de ella. 
     * @param ti Tiempo en el que entro el cliente
     * @param tt Tiempo que demora la transaccion del cliente
     * @param entrada Evento de entrada o salida del cliente
     */
    public Cliente(int ti, int tt, boolean entrada) {
        this.ti = ti;
        this.tt = tt;
        this.entrada = entrada;
    }

    /**
     * Permite obtener el valor de la ventanilla en la cual a sido asignado el cliente.
     * @return Devuleve el valor int que representa la ventanilla donde es atendido el cliente.
     */
    public int getVentanilla() {
        return ventanilla;
    }

    /**
     * Procedimiento que permite asignarle una ventanilla de atencion al cliente.
     * @param ventanilla Recibe el valor int que representa la ventanilla de atencion del cliente.
     */
    public void setVentanilla(int ventanilla) {
        this.ventanilla = ventanilla;
    }

    /**
     * Procedimiento que permite obtener el tiempo de transaccion del cliente.
     * @return Devuelve el valor int del tiempo que tardara la transaccion del cliente.
     */
    public int getTt() {
        return tt;
    }

    /**
     * Procedimiento que permite asignarle un tiempo de transaccion a un cliente.
     * @param tt Recibe el valor int del tiempo que tardara la transaccion del cliente.
     */
    public void setTt(int tt) {
        this.tt = tt;
    }
    
    

    /**
     * Asigna un valor al tiempo total de la espera del cliento dentro del banco.
     * @param te Recibe el valor entero del tiempo que el cliente espero en el banco.
     */
    public void setTe(int te) {
        this.te = te;
    }

    /**
     *Procedimiento que permite obtener el tiempo de espera del cliente dentro del banco. 
     * @return Devuelve el valor int del tiempo de espera del cliente en el banco.
     */
    public int getTe() {
        return te;
    }

    /**
     * Procedimiento que permite obtener el tiempo de entrada del cliente.
     * @return Devuelve un valor int del tiempo de entrada
     */
    public int getTi() {
        return ti;
    }

    /**
     * Procedimiento que permite obtener el tiempo de transaccion que le fue asignado al cliente
     * @return Devuelve un valor int del tiempo que tardara la transaccion
     */
    public int getTs() {
        return ts;
    }

    /**
     * Devuelve el valor boolean para determinar si el cliente esta entrando al banco o no.
     * @return Devuelve True si el cliente viene de entrada o False si el cliente se retira del banco.
     */
    public boolean isEntrada() {
        return entrada;
    }

    /**
     * Procedimiento que permite asignarle un evento al cliente
     * @param entrada Si el parametro es True el cliente esta entrando al banco, si el paramentro es False el cliente se esta retirando del banco.
     */
    public void setEntrada(boolean entrada) {
        this.entrada = entrada;
    }

   

    /**
     * Procedimiento que permite asignarle un tiempo de entrada al cliente al banco.
     * @param ti Se envia un int para asignar un tiempo de entrada.
     */
    public void setTi(int ti) {
        this.ti = ti;
    }

    /**
     * Procedimiento que permite asignarle un tiempo de transaccion al cliente.
     * @param ts Se envia un int que representa el tiempo que tardara la transaccion.
     */
    public void setTs(int ts) {
        this.ts = ts;
    }
    
    
}
